package com.hy.day;

import java.util.Arrays;

/**
 * Created With IntelliJ IDEA.
 * Descriptions:3132. 找出与数组相加的整数 II
 * <p>
 * User:Mr.Du
 * Date:2024/8/9
 * Time:10:04
 */
public class MinimumAddedInteger {

    /**
     * 就是子序列问题，因为删除两个数，那么在nums1中前三个数绝对有一个保留，那么我们从后往前遍历，
     * 计算nums2[0] - nums1[i]的值，然后遍历nums1，如果存在nums2[j] == nums1[k] + x && ++j == nums2.length
     * 说明找到了，返回x
     * @param nums1
     * @param nums2
     * @return
     */
    public int minimumAddedInteger(int[] nums1, int[] nums2) {
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        for(int i = 2;i > 0;i--){
            int x = nums2[0] - nums1[i];
            int j = 0;
            for(int k = i;k < nums1.length;k++){
                if(nums2[j] == nums1[k] + x && ++j == nums2.length){
                    return x;
                }
            }
        }
        return nums2[0] - nums1[0];
    }

    /**
     * 这是字符串的子序列
     * @param s
     * @param t
     * @return
     */
    public boolean isSubsequence(String s, String t) {
        if(s.length() == 0) return true;
        int i = 0;
        for(char c : t.toCharArray()){
            if(c == s.charAt(i) && ++i == s.length()){
                return true;
            }
        }
        return false;
    }

}
